package com.kfm.service;

import com.kfm.util.Contains;
import com.kfm.util.UUIDUtil;

import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.time.LocalDate;
import java.util.UUID;

public class UploadService {


    public String save(Part part){
        /*
            文件名处理:
                1. 上传时文件名作为保存的文件名
                2. 为了解决同名文件存储问题，需要重命名文件
                3. 分类存储 video audio image doc
                   分时存储 根据上传时间存储。 每天建一个文件夹存储
         */
        String submittedFileName = part.getSubmittedFileName();

        // 文件格式
        int index = submittedFileName.lastIndexOf(".");
        var sub = submittedFileName.substring(index);

        String fileName = UUIDUtil.uuid32() + sub;

        // Twitter  雪花算法
//        System.currentTimeMillis();
//        UUID.randomUUID().toString();

        String date = LocalDate.now().toString().replace("-", "");


        // 今天存储文件的文件夹
        File directory = new File(Contains.FILE_PATH, date);

        // 判断文件夹是否存在
        if (!directory.exists()){
            directory.mkdirs();
        }

        File saveFile = new File(directory, fileName);


        try {
            part.write(saveFile.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
        }

        return saveFile.getAbsolutePath();
    }

}
